package Game;

abstract class GameRole {
    /*
      在一个游戏中，有盗贼，猎人，医生，农民，士兵几类角色，这些角色都有名称、等级，体力，攻击力，防御力，金币，还可以自己介绍自己，
    都可以攻击（主动技能--玩家可以在外部调用），防御（被动技能--玩家不能在外部调用）；
       其中：
     属性计算方式：
        体力 = 等级 * 角色加权（盗贼10，猎人12，医生8，农民8，士兵15）；
        攻击力 = 等级 * 角色加权（盗贼3，猎人2，医生1，农民1，士兵2）；
        防御力 = 等级 * 角色加权（盗贼1，猎人2，医生2，农民1，士兵3）；
      另外：
         盗贼可以偷盗，一次偷盗可以得到12金，消耗体力9。
         猎人可以打猎，一次打猎可以得到10金，消耗体力8。
         农民可以采矿，一次采矿可以得到5金，消耗体力3。
          医生可以治疗（可以治疗自己或别人，治疗后恢复的体力是医生等级的2倍）。治疗自己不需要花金，治疗对方要对方扣除恢复体力点数同样的金
   （如果没有不能治疗），治疗后体力最多恢复到体力上限。
         士兵可以狂暴（狂暴以后体力减少1半，攻击*2，防御*2）  设计这个系统。
     */

    private String name;
    private int rank = 1;
    private int ap;                 //攻击力
    private int dp;                //防御力
    private int hp;                //体力
    private int maxHp;            //最大体力
    private int money;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public int getRank() {
        return rank;
    }
    public void setRank(int rank) {
        this.rank = rank;
    }

    public int getAp() {
        return ap;
    }
    public void setAp(int ap) {
        this.ap = ap;
    }

    public int getDp() {
        return dp;
    }
    public void setDp(int dp) {
        this.dp = dp;
    }

    public int getHp() {
        return hp;
    }
    public void setHp(int hp) {
        this.hp = hp;
    }

    public int getMaxHp() {
        return hp;
    }
    public void setMaxHp(int maxHp) {
        this.maxHp = maxHp;
    }

    public int getMoney() {
        return money;
    }
    public void setMoney(int money) {
        this.money = money;
    }


    public abstract void attack(GameRole role);
    public abstract void introduce();
    private void defend(){
    }
}
